package com.xuhaijian.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 债权款项信息表
 */
@Getter
@Setter
@TableName("t_order_payment")
public class OrderPayment implements Serializable {

	@TableId(value = "id", type = IdType.INPUT)
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private Long id;

	/**
	 * 渠道编号
	 */
	private String deptCode;

	/**
	 * 渠道经销商名称
	 */
	private String deptName;

	/**
	 * 订单编号
	 */
	private String orderNo;

	/**
	 * 客户名称(承租人)
	 */
	private String custName;

	/**
	 * 身份证号码
	 */
	private String idCardNo;

	/**
	 * 客户联系方式
	 */
	private String custPhone;

	/**
	 * 款项类型(1:租金，2:罚息 3:项目保证金 4:渠道保证金 5:投放款,6.留购价)
	 */
	private Integer repaymentType;

	/**
	 * 交易类型(1：收入 2：支出)
	 */
	private Integer tradingType;

	/**
	 * 期次
	 */
	private Integer planPeriod;

	/**
	 * 应交易日期(扣款日期)
	 */
	private Date repayDate;

	/**
	 * 应交易金额(租金)
	 */
	private BigDecimal repayAmount;

	/**
	 * 已交易金额(已核销)
	 */
	private BigDecimal repayPaidAmount;

	/**
	 * 未交易金额(未核销)
	 */
	private BigDecimal leftAmount;

	/**
	 * 每期计划本金
	 */
	private BigDecimal principalRepaymentAmount;

	/**
	 * 每期已还本金
	 */
	private BigDecimal repayPrincipalRepaymentAmount;

	/**
	 * 每期计划利息
	 */
	private BigDecimal paidInterestAmount;

	/**
	 * 每期已还利息
	 */
	private BigDecimal repayPaidInterestAmount;

	/**
	 * 计划剩余本金
	 */
	private BigDecimal leftPrincipalAmount;

	/**
	 * 逾期天数(累计)
	 */
	private Integer overdueDays;

	/**
	 * 起租时间
	 */
	private Date startRentDate;

	/**
	 * 实际还款日期
	 */
	private Date repayFactDate;

	/**
	 * 实际核销日期
	 */
	private Date verifyingDate;

	/**
	 * 还款方式(1-自动批扣，2-线下核销)
	 */
	private Integer repayType;

	/**
	 * 状态(1：未核销 2：核销中 3：批扣中 4：已核销 5：逾期中)
	 */
	private Integer status;

	/**
	 * 发票流水号
	 */
	private String invoiceInfo;

	/**
	 *  发票地址
	 */
	private String invoiceUrl;
	/**
	 * 创建人ID
	 */
	@TableField(fill = FieldFill.INSERT)
	private String creatorId;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/**
	 * 修改人id
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private String updaterId;

	/**
	 * 修改时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;

	/**
	 * 删除标记
	 */
	@TableField(fill = FieldFill.INSERT)
	@TableLogic
	private Integer isDeleted;

	/**
	 * 合同编号
	 */
	private String contractNo;

	/**
	 * 客户类型 1-个人 2-企业
	 */
	private Integer custType;

	/**
	 * 预冲抵金额
	 */
	private BigDecimal preOffsetAmount;
	/**
	 * 预冲抵本金金额
	 */
	private BigDecimal offsetPrincipalAmount;
	/**
	 * 预冲抵利息金额
	 */
	private BigDecimal offsetInterestAmount;
	/**
	 * 减免总金额
	 */
	private BigDecimal derateTotalAmount;

	/**
	 * 是否提前结清
	 */
	private String isEarlySettle;

	/**
	 * 小微最新收支计划版本号
	 */
	private Integer version;
}